# 导入模块
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.action_chains import ActionChains
import os
import time

# 打开浏览器
driver = webdriver.Chrome()
# 浏览器最大化
driver.maximize_window()

# 请求访问网址
# 准备url
url = 'file:///' + os.path.abspath('html') + '/注册实例.html'
driver.get(url)

# 准备注册数据
UserInfo = {
    'user': '小小怪下士',
    'password': '123456',
    'phone': '1231231',
    'email': '123@163.com'
}

# TODO 跳转到注册用户B iframe
# 获取跳转对象
driver.switch_to.frame('myframe2')

# TODO 输入数据
# 定位账号输入框,输入数据
driver.find_element(By.ID, 'userB').send_keys(UserInfo['user'])
# 定位密码输入框，输入数据
driver.find_element(By.ID, 'passwordB').send_keys(UserInfo['password'])
# 定位电话号码输入框，输入数据
driver.find_element(By.ID, 'telB').send_keys(UserInfo['phone'])
# 定位电子邮件输入框，输入数据
driver.find_element(By.ID, 'emailB').send_keys(UserInfo['email'])

# TODO 下拉框操作
# 定位下拉框位置
se = driver.find_element(By.XPATH, '//*[@id="selectB"]')
# 创建select对象,参数是要操作的标签
select = Select(se)
# 选择option
# 通过value选取
select.select_by_value('gz')

# TODO alert操作
# 定位alert按钮并点击
btn = driver.find_element(By.XPATH, '//*[@id="alertB"]')
# 创建动作对象
ac = ActionChains(driver=driver)
# 绑定鼠标事件,perform调用
ac.click(btn).perform()
# 切换到弹窗
alert = driver.switch_to.alert
# 点击确定
alert.accept()

# 定位注册按钮位置并点击
driver.find_element(By.XPATH, '//*[@id="zc"]/fieldset/button').click()

time.sleep(3)
# 退出浏览器
driver.quit()
